package q977_sortedSquares;

public class Solution_1 {
    /*
    双指针来进行判断并赋值
     */
    public int[] sortedSquares(int[] nums) {
        if (nums[0] >= 0) {
            for (int i = 0; i < nums.length; i++) {
                nums[i] = nums[i] * nums[i];
            }
            return nums;
        }

        // 左右两个指针
        int l = 0, r = nums.length - 1;
        int[] res = new int[nums.length];
        for (int i = res.length - 1; i >= 0 && r >= l; i--) {
            // nums[l] + nums[r] < 0 ——> abs(l) > abs(r) ?
            if (Math.abs(nums[l]) < Math.abs(nums[r])) {
                res[i] = nums[r] * nums[r];
                r--;
            }else {
                res[i] = nums[l] * nums[l];
                l++;
            }
        }
        return res;
    }
}
